﻿using Microsoft.AspNetCore.Mvc;
using Configuration.ServerApi.Param;
using System.Threading.Tasks;

namespace Configuration.ServerApi.Service
{
    /// <summary>
    /// IRecordService
    /// </summary>
    public interface IRecordService
    {
        /// <summary>
        /// 获取操作记录列表
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> OperationRecordList(SearchModel param);

        /// <summary>
        /// 获取操作记录详情
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> OperationRecordDetail(SearchModel param);

        /// <summary>
        /// 提交操作记录信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> SubmitOperationRecord(UpdateModel param);

        /// <summary>
        /// 批量删除操作记录信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> DelOperationRecord(UpdateModel param);

        /// <summary>
        /// 获取实验任务队列数据
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> ExperimentTaskQueueList(SearchModel param);

        /// <summary>
        /// 获取实验记录列表
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> ExperimentRecordList(SearchModel param);

        /// <summary>
        /// 获取实验记录详情
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> ExperimentRecordDetail(SearchModel param);

        /// <summary>
        /// 提交实验记录信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> SubmitExperimentRecord(UpdateModel param);

        /// <summary>
        /// 批量删除实验记录信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> DelExperimentRecord(UpdateModel param);

        /// <summary>
        /// 更新实验记录状态
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> UpdateExperimentRecordStstus(UpdateModel param);

        /// <summary>
        /// 更新实验任务顺序
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> UpdateExperimentRecordSort(UpdateModel param);

        /// <summary>
        /// 获取实验运行日志列表
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> ExperimentRunLogList(SearchModel param);

        /// <summary>
        /// 获取球磨机1实验运行日志列表
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> ExperimentRunLogByBallMillingList(SearchModel param);

        /// <summary>
        /// 获取球磨机2实验运行日志列表
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> ExperimentRunLogByBallMillingTwoList(SearchModel param);

        /// <summary>
        /// 获取管式炉实验运行日志列表
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> ExperimentRunLogByTubeFurnaceList(SearchModel param);

        /// <summary>
        /// 获取下装炉实验运行日志列表
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> ExperimentRunLogByBottomFurnaceList(SearchModel param);

        /// <summary>
        /// 获取自动化烘干机实验运行日志列表
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> ExperimentRunLogByOvenList(SearchModel param);

        /// <summary>
        /// 获取电化学测试仪器实验运行日志列表
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> ExperimentRunLogByElectroChemistryTestList(SearchModel param);

        /// <summary>
        /// 获取球磨机1图表数据
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> EChartDataByBallMilling(SearchModel param);

        /// <summary>
        /// 获取球磨机2图表数据
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> EChartDataByBallMillingTwo(SearchModel param);

        /// <summary>
        /// 获取管式炉图表数据
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> EChartDataByTubeFurnace(SearchModel param);

        /// <summary>
        /// 获取下装炉图表数据
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> EChartDataByBottomFurnace(SearchModel param);

        /// <summary>
        /// 获取自动化烘干机图表数据
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> EChartDataByOven(SearchModel param);

        /// <summary>
        /// 获取实验运行日志详情
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> ExperimentRunLogDetail(SearchModel param);

        /// <summary>
        /// 提交实验运行日志信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> SubmitExperimentRunLog(UpdateModel param);

        /// <summary>
        /// 批量删除实验运行日志信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> DelExperimentRunLog(UpdateModel param);

        /// <summary>
        /// 获取预警记录列表
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> WarningRecordList(SearchModel param);

        /// <summary>
        /// 获取预警记录详情
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> WarningRecordDetail(SearchModel param);

        /// <summary>
        /// 提交预警记录信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> SubmitWarningRecord(UpdateModel param);

        /// <summary>
        /// 批量删除预警记录信息
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> DelWarningRecord(UpdateModel param);

    }
}
